package org.huawei260.TiKu.ODsuanfa;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * @Author: qingle
 * @Date: 2024/10/28-16:11
 * @Description: 2538 【模拟】2024E整数对最小和
 *
 * 题目描述
 * 给定两个整数数组array1、array2，数组元素按升序排列。假设从array1、array2中分别取出一个元素可构成一对元素，现在需要取出k对元素，并对取出的所有元素求和计算和的最小值。
 *
 * 注意：两对元素如果对应于array1、array2中的两个下标均相同，则视为同一对元素。
 *
 * 输入格式
 * 输入两行数组array1、array2，每行首个数字为数组大小size(0 < size <= 100)
 *
 * 0 < array1[i] <= 1000
 *
 * 0 < array2[i] <= 1000
 *
 * 接下来一行为正整数k 0 < k <= array1.size()*array2.size()
 *
 * 输出格式
 * 满足要求的最小和
 * 输入样例    复制
 * 3 1 1 2
 * 3 1 2 3
 * 2
 * 输出样例    复制
 * 4
 *
 * @version: 1.0
 */
public class E_2024E_2538__模拟整数对最小和_answer {
//	public class Main {
		public static void main(String[] args) {
			Scanner sc = new Scanner(System.in);

			int n1 = sc.nextInt();
			int[] arr1 = new int[n1];
			for (int i = 0; i < n1; i++) arr1[i] = sc.nextInt();

			int n2 = sc.nextInt();
			int[] arr2 = new int[n2];
			for (int i = 0; i < n2; i++) arr2[i] = sc.nextInt();

			int k = sc.nextInt();

			System.out.println(getResult(arr1, arr2, k));
		}

		public static int getResult(int[] arr1, int[] arr2, int k) {
			ArrayList<Integer> pairs = new ArrayList<>();

			for (int v1 : arr1) {
				for (int v2 : arr2) {
					pairs.add(v1 + v2);
					// v1,v2分别是谁
					System.out.print(v1 + "," + v2 + " ");
//					System.out.println();
				}
			}

			pairs.sort((a, b) -> a - b);

			int sum = 0;
			for (int i = 0; i < k; i++) sum += pairs.get(i);

			return sum;
		}
	}